perm filename MIX.DOC[MIX,SYS]1 blob sn#020802 filedate 1970-12-13 generic text, type T, neo UTF8
00100	   MM           MM                II                XX           XX
00200	   MMM         MMM                II                 XX         XX
00300	   MMMM       MMMM                II                  XX       XX
00400	   MM MM     MM MM                II                   XX     XX
00500	   MM  MM   MM  MM                II                    XX   XX
00600	   MM   MM MM   MM                II                     XX XX
00700	   MM    MMM    MM                II                      XXX
00800	   MM     M     MM                II                      XXX
00900	   MM           MM                II                     XX XX
01000	   MM           MM                II                    XX   XX
01100	   MM           MM                II                   XX     XX
01200	   MM           MM                II                  XX       XX
01300	   MM           MM                II                 XX         XX
01400	   MM           MM                II                XX           XX
     

00100	SUMMARY
00200	
00300		MIX  is  a  simulator for the MIX machine described in Knuth,
00400	vol. 1. It has all the  features  described  there,  except  that  it
00500	cannot  do  floating  point  arithmetic, and I/O is limited to a card
00600	reader, card punch, printer, and typewriter.  It has a byte  size  of
00700	64.
00800	
00900		MIX  is  actually  a system of three major parts.  One is the
01000	actual simulator.  The second is the debugging package, which  allows
01100	the  user  to  examine and change loactions in core, set breakpoints,
01200	and perform other useful functions.  The third is  an  assembler  for
01300	the  MIXAL  assebly  language  (a free-format version of the language
01400	described in Knuth.)  MIX  incorporates  all  three  parts  into  one
01500	program.   The  upper-level of this program is the simulator, and the
01600	user can call either of the other parts by pushing  any  of  numerous
01700	"buttons" provided on the machine.  For convenience, MIXAL may be run
01800	separately, without calling the simulator.
01900	
02000		MIX is loaded by typing to the monitor:
02100			R MIX
02200	
02300		MIXAL alone is loaded by typing to the monitor:
02400			R MIXAL
     

00100	DETAILS
00200	
00300	about MIX:
00400	
00500		MIX  is  the  simulator with the debugger and MIXAL assembler
00600	incorporated into it.  Essentially, it is simply  a  machine  with  a
00700	large  number of buttons which you can push.  These buttons allow you
00800	to tell the machine to do various things.  MIX will tell  you  it  is
00900	waiting  for  a button to be pushed by typing "#".  You push a button
01000	by typing the name of the button followed by a carriage-return.  Some
01100	buttons  have  abbreviations.   The  different buttons may be grouped
01200	into several different types.  The buttons of each  type,  and  MIX's
01300	response, are described below.
     

00100	buttons for machine operation:
00200	
00300		GO or G		This  button  causes one card to be read into
00400				locations 0-15.   Then  execution  begins  at
00500				location 0000.
00600	
00700		LOAD or L	This button causes one card to be  read  into
00800				locations  0-15.  Then control returns to the
00900				user.
01000	
01100		START or S	This button causes the execution time  to  be
01200				set  to  zero and rJ to be set to zero.  Then
01300				execution begins at location 0000.
01400	
01500		CONT or C	This button causes execution to be resumed at
01600				the   location   indicated   by  the  program
01700				counter.    (This   works   after    halting,
01800				breakpointing, or stopping for any reason.)
01900	
02000		HALT or H	This   doesn't   do  anything  except  return
02100				control to the user,  where  control  already
02200				was. If you wish to stop the machine while it
02300				is running, type any character at all.   This
02400				will cause MIX to stop as soon as the present
02500				instruction is finished.
02600	
02700		STEP or X	This button causes the next  instruction  (as
02800				indicated  by  the  program  counter)  to  be
02900				executed.  Control then returns to the user.
03000	
03100		ZXT		This button causes the execution time  to  be
03200				set to zero.
03300	
03400		ZPC		This  button causes the program counter to be
03500				set to 0000.
03600	
03700		SETPC		This  button  is  used  to  set  the  program
03800				counter  to whatever you want.  When MIX asks
03900				for it, type the address you want the program
04000				counter to be set to.
04100	
04200		EXIT		This  button  causes  MIX  to  exit, and your
04300				teletype is returned to monitor mode.
     

00100	buttons for finding out about the status of MIX:
00200	
00300	Note:	If you are at a III display, then you will see before  you  a
00400	picture  of  the  MIX  machine.   It shows each of the registers, the
00500	execution  time,  the  program  counter  (which  will  be  the   next
00600	instruction  executed in the normal flow of control), the instruction
00700	which was just executed, and the overflow and comparison  indicators.
00800	If  you  are  not  at a III display, I'm sorry, but you can't see the
00900	picture, you can only read the book.
01000	
01100		DISP or D	This   button   causes   a  type  out  giving
01200				information  about  the  MIX  m>)↓↓#
β≠K↔*k≠?KnQβ[/∪O'?rβ?→β&C∃β3∞s∨Wπ>(4(